Accurate estimation of linear positions and rotational angles is an important task in industrial automation, and similar applications. Devices, such as numerically controlled (CNC) machines, drill bits, robot arms or laser cutters, and assembly lines need precise measurements. Feedback control is often used for precision measurements.
Typical encoders include a scale and a read-head. Optical encoders are typically used to measure absolute or relative linear positions or rotational angles. Relative encoders measure the relative position or angle within a period of the scale, and require counting the number of scale periods traversed to determine the absolute position or angle. Absolute encoders do not require memory or power to store the current position or angle, and can obtain these at any time, particularly at start-up.
Optical encoders can be linear or rotary. A linear encoder measures a position, and a rotary encoder measuring an angle. Conventional absolute rotary encoders typically use multiple tracks and apply sine-cosine based interpolation method to achieve high resolution.
A single track absolute linear encoder that uses a single scale and a single CCD/CMOS sensor is described in the parent Application. That encoder does not use the conventional sine-cosine based interpolation method. Instead, that encoder detects edges, or zero-crossings, in a scan-line, and fits a model to the edge positions to obtain high resolution absolute position information. That encoder acquires a 1D image of the linear scale with a linear read-head.
High accuracy rotary encoders are required in precise, machining and manufacturing equipment. However, several errors can be introduced in the rotary encoder during manufacturing. These include errors in the scale pattern, installation of the scale on a rotary shaft, read-head alignment, and noise in electrical circuits.
For rotary encoders, the spacing between the scale lines varies due to the circular nature, of the scale. Another source of errors is eccentricity induced when the scale on a rotary disc is arranged on a rotary shaft. In addition, out-of-plane motion (wobble), and misalignment in installation can also lead to variation of the distance between the read-head and the scale. These factors affect the overall accuracy of rotary encoders. The encoder can correct manufacturing variations, errors in the scale pattern, installation of the scale on the rotary shaft, read-head alignment, and noise in electrical circuits. During operation, temperature variations and mechanical vibrations can cause further distortions, further reducing accuracy.
Due to the being closer to the light source, the center of the sensor receives more light compared to the sides. This results in vignetting, where the acquired 1D image is brighter in the center and darker on the sides. Vignetting leads to errors in detected zero-crossings (edges), thereby reducing the overall accuracy.
Several previous methods require multiple additional read-heads to cancel out errors due to eccentricity. For example, see U.S. Pat. No. 6,215,119, and U.S. Pat. No. 7,143,518. An equally divided average (EDA) method is described, by Masuda et al. in “High accuracy calibration system for angular encoders,” J. Robotics and Mechatronics, 5(5), 448-452, 1993. Rotary encoders that use multiple read-heads to reduce eccentricity errors increase the cost of the system and make the system design cumbersome.
Conventional methods also require precise motion of rotating parts for self-calibration. For example, U.S. Pat. No. 5,138,564 discloses a method that moves the encoder at slow speed and fast speed for calibration. U.S. Pat. No. 6,598,196 drives the servo system on a predetermined trajectory such that encoder errors occur at frequencies outside the servo feedback loops. Such requirements increase calibration effort and time.
U.S. Pat. No. 7,825,367 describes a self-calibrating rotary encoder where angular differences are determined as a Fourier series. Sine-cosine interpolation based rotary encoders can be calibrated as described in U.S. Pat. No. 8,250,901. The voltage data corresponding to sine and cosine of the rotation angle is fitted to an ellipse. Linear calibration parameters are obtained by transforming the ellipse into a circle.
U.S. Pat. No. 7,825,367 describes a rotary encoder capable self-calibration. The rotary encoder includes a rotary disk with an angle code, a light source, and a linear sensor (CCD) that reads the angle code. A processing unit acquires reading values f(θ) for predetermined angles. A difference between reading values f(θ+φ) and f(θ) within a reading range on the linear sensor is g(θ, φ). The difference is determined as a Fourier series. There, the rotation angle θ at a location is obtained by analyzing the CCD image. The self-calibration is based on finding the rotation angle at two different locations, and analyzing the difference for use in the self-calibration.